
#ifndef DXLIST_H
#define DXLIST_H

#include <stdlib.h>
#include <stdbool.h>
#include <stdio.h>

#ifndef DATATYPE          //没有默认 int 
#define DATATYPE int          
#endif

typedef DATATYPE datatype;

typedef struct node             //节点
{
	datatype data;
	struct node *next;
}*linklist,listnode;

linklist list_init(void);   //初始化    

bool  list_add_tail(linklist new, linklist head);//将节点加在最后面

bool list_add(linklist new, linklist head);//将节点加在头节点后面

bool list_del(linklist node, linklist head);        //删除节点

bool list_move(linklist new, linklist head);   //移动节点到头节点后面

bool list_move_tail(linklist new, linklist head);

void list_show(linklist head);


linklist list_node(datatype a);       //创建新节点,一般在外部设计


void show_list(linklist head);  //遍历链表，一般在外边设计


#endif
